Configuring user interfaces in electronic devices

ABSTRACT

A method and an electronic device arranged to execute application programs, wherein the device comprises an operating system enabling a separation of user interface data from the rest of the data processing system, the device being arranged to check, in response to starting an execution of the application program, whether screen size information of the application program corresponds to a display size of the terminal; and download, in response to the screen size of the application program differing from the display size of the terminal, a new user interface file with an appropriate screen size from a network server.

CROSS REFERENCE TO RELATED APPLICATION

This patent application is a continuation application of U.S.Publication No. 20070260749 published on Nov. 8, 2007 (U.S. patentapplication Ser. No. 11/416,795 filed on May 2, 2006). The subjectmatter of the previously filed application is hereby incorporated byreference.

TECHNOLOGICAL FIELD

The present invention relates to electronic devices provided withdisplays, and particularly to configuring user interfaces in suchdevices.

BACKGROUND

It is generally known that portable electronic devices, like mobilestations, PDA devices and portable computers, are provided with displaysof various sizes. For example 128×128/160 and 176×208 pixels are knownresolutions of a mobile station display, while some PDA devices may havea display resolution of 640×200/320 pixels. Due to the differences indisplay resolution and size, application programs for mobile phones andPDA devices are created for each display size separately.

This causes inconveniency for both application developers and end-users.Application developers must create different software versions for eachavailable display size. For example an application designed for a mobilestation with a display size of 176×208 pixels cannot be typically run ina PDA device with a display size of 640×200 pixels, and vice versa, eventhough the application itself may otherwise be a compatible applicationfor both devices. An end-user, in turn, may have a plurality of mobiledevices with various display sizes. An application, compatible as suchwith a plurality of devices, could be stored in a memory card andexecuted in all compatible devices by inserting the memory card in eachdevice at a time, but due to the differences in display resolution, theapplication cannot be run in every device.

BRIEF SUMMARY

Now there is invented an improved method and technical equipmentimplementing the method, by which it is possible to use the sameapplication in electronic devices with displays of different sizes.Various aspects of the invention include a method, an electronic deviceand a computer program, which are characterized by what is stated in theindependent claims. Various embodiments of the invention are disclosedin the dependent claims.

According to a first aspect, a method according to the invention isbased on the idea of updating a user interface file for an applicationprogram in a terminal comprising an operating system enabling aseparation of user interface data from the rest of the data processingsystem such that when an execution of the application program isstarted, it is checked whether screen size information of theapplication program corresponds to a display size of the terminal; andin response to the screen size of the application program differing fromthe display size of the terminal, a new user interface file with anappropriate screen size is downloaded from a network server.

According to an embodiment, the screen size information of theapplication program is stored in a user interface descriptor of theapplication program.

According to an embodiment, prior to downloading the new user interfacefile from the network server, it is examined whether the applicationprogram includes any further user interface files; and a user interfacefile appropriate for the terminal is selected for further usage, ifincluded in the application program.

According to an embodiment, the application program includes a networkaddress of the network server providing user interface files to bedownloaded.

According to an embodiment, the operating system is the Symbian®operating system.

The arrangement according to the invention provides significantadvantages. A software developer can create a plurality of userinterface files applicable with the one and the same application file,whereby no separate application files are required for each userinterface type. This facilitates software development and enables thereuse of the application software as such. On the other hand, theend-user may utilize the one and the same application in a plurality ofdevices with various display sizes only by downloading an appropriateuser interface file for each device.

According to a second aspect, there is provided an electronic devicearranged to execute application programs, the device comprising anoperating system enabling a separation of user interface data from therest of the data processing system and the device being arranged tocheck, in response to starting an execution of the application program,whether screen size information of the application program correspondsto a display size of the terminal; and download, in response to thescreen size of the application program differing from the display sizeof the terminal, a new user interface file with an appropriate screensize from a network server.

According to a third aspect, there is provided a computer programproduct, stored on a computer readable medium and executable in a dataprocessing device, for updating a user interface file for an applicationprogram, the computer program product comprising: a computer programcode section for starting an execution of the application program; acomputer program code section for checking whether screen sizeinformation of the application program corresponds to a display size ofthe terminal; and a computer program code section, responsive to thescreen size of the application program differing from the display sizeof the terminal, for downloading a new user interface file with anappropriate screen size from a network server.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

In the following, various embodiments of the invention will be

FIG. 1 shows a basic principle of a Model-View-Controller programmingmodel;

FIG. 2 shows a flow chart of a method for updating a user interface fileaccording to an embodiment of the invention; and

FIG. 3 shows a reduced block diagram of an electronic device accordingto an embodiment of the invention.

DETAILED DESCRIPTION

A Model-View-Controller (MVC) model is one of the most widely usedprogramming models for graphical user interfaces (GUIs). The MVC isderived from a traditional system model including input, processing, andoutput. Similarly, in the MVC model an application, or even just a pieceof an application's interface, is separated into three parts: the model,the view, and the controller. The controller represents the input, themodel represents the processing and the view represents the output.

The separation of the logical parts of the user interface is especiallyapplicable to be implemented in an object-oriented software environment,wherein the distinguished objects can be reused for various tasks andevents. The user input, the modeling of the external world, and thevisual feedback to the user are separated and handled by model, view andcontroller objects.

The controller interprets mouse and keyboard inputs from the user andmaps these user actions into commands that are sent to the model and/orview to effect the appropriate change. Accordingly, the controllerdefines the behaviour of an application. The model manages one or moredata elements, responds to queries about its state, and responds toinstructions to change the state. Thus, the model encapsulates theapplication state and data, exposes the application functionality andnotifies the view of any changes.

The view manages the display screen and is responsible for presentingdata to the user as a combination of graphics and text. The viewtypically has a one-to-one correspondence with a display surface andknows how to render to it. The view attaches to the model and rendersits contents to the display surface. In addition, when the modelchanges, the view automatically redraws the affected part of the imageto reflect those changes. There can be multiple views onto the samemodel and each of these views can render the contents of the model to adifferent display surface. Accordingly, the view may be a composite viewcontaining several sub-views, which may, in turn, contain severalsub-views.

The model, the view and the controller are intimately related and inconstant contact. Therefore, they must reference each other. FIG. 1illustrates the basic lines of communication among the model, the viewand the controller. The model has a base class pointer towards the view,which allows it to send weakly-typed notifications of change to theview, but the model is not aware of the types of views which observe it.By contrast, the view knows exactly what kind of model it observes. Theview also has a strongly-typed pointer to the model, allowing it to callany of the model's functions. In addition, the view also has a pointerto the controller, but it should not call functions in the controlleraside from those defined in the base class. The controller has pointersto both the model and the view and it is aware of their types, as well.Since the controller defines the behaviour of an application, it mustknow the type of both the model and the view in order to translate userinput into application response.

When creating application software for MVC-based frameworks, theapplications must include user interface (UI) descriptors in order toguide the application to read user interface definitions from anappropriate memory location. Descriptors provide a safe, consistent andeconomical mechanism for containing, accessing and manipulating stringsand general binary data. The data represented by descriptors resides ina defined location in a memory. A UI descriptor is an object that knowshow to create an appropriate user interface layout. It does not includeany interface data as such, but it rather includes instructions tocreate a user interface when required. A UI descriptor is a lightweightrepresentation of a user interface that can be manipulated withoutaffecting to the actual user interface data.

Now the separation of a user interface layer (view) from the input data(controller) and the logic (model) processing the input data provides anadvantageous framework for the implementation of the present invention.According to an embodiment, screen size information of a desirabledisplay is included in the UI descriptor of an application, and when theapplication is downloaded and started to execute in an electronicdevice, it is checked whether the screen size information of theapplication matches to the display size of the electronic device. If thedisplay of the electronic device is incompatible with the desirabledisplay of the application, the electronic device checks a networkaddress included in the application, which network address provides alink to a server including a plurality of various user interface layersfor the particular application. If a user interface matching with thedisplay of the electronic device is available in the server, it isdownloaded in the electronic device for further execution.

Accordingly, a software developer can create a plurality of userinterface files applicable with the one and the same application file,whereby no separate application files are required for each userinterface type. This facilitates software development and enables toreuse the application software as such. On the other hand, the end-usermay utilize the one and the same application in a plurality of deviceswith various display sizes only by downloading an appropriate userinterface file for each device.

According to an embodiment, a software package may in the firstinstance, i.e. when bought or downloaded for the first time in a device,include several different user interface files by default. Then, if theprimary user interface file does not match with the display of theelectronic device, the other user interface files included in thesoftware package are examined. If a matching user interface is found inthe package, it is naturally selected for further usage. However, if nomatching user interface is found in the package, a connection is thenestablished to the network server for retrieval of an appropriate userinterface file.

A method according to an embodiment is further illustrated in a flowchart of FIG. 2. An application program previously used in a firstelectronic device, e.g. a mobile station with a display size of 176×208pixels, is downloaded (200) in a second electronic device with adifferent size of display, such as a PDA device with a display size of640×200 pixels. The application program may be stored in a memory card,for instance, whereby the memory card may be exchanged between thedevices. The second electronic device notices (202) that the applicationprogram, as such, is compatible with its operating system, but thedimensions and/or the size of the user interface indicated in the UIdescriptors are not suitable for the display of the second electronicdevice. Consequently, the electronic device examines (204) the softwarepackage of the application program, whether it includes any further userinterface file. If an appropriate user interface file is found (206) inthe package, it is selected (208) to be further used with theapplication program. If no appropriate user interface file is found inthe package, the electronic device retrieves a network address, such asan URL (Uniform Resource Location) address usable on IP connections,from a predefined location of the application file and establishes (210)a connection to a network server by using the network address. Then anappropriate user interface file is downloaded (212) from the server, andthe downloaded file is then selected (208) for usage with theapplication program.

FIG. 3 illustrates the basic structure of an electronic device (ED)according to an embodiment, which electronic device may be e.g. awireless mobile station, a PDA device or a PC-based computer. Theelectronic device (ED) comprises a central processing unit (CPU), amemory (MEM) and an I/O system (I/O). All the necessary information isstored in the memory (MEM) of the device. The memory (MEM) com-prises aread-only memory part, which may consist e.g. of a RAM (Random AccessMemory) and/or FLASH memory. Through the I/O system (I/O), the devicecommunicates e.g. with other devices, a network and a user. A userinterface (UI), which is a part of the I/O system (I/O), comprises aninterface necessary for communicating with the user, such as a display,keypad, loudspeaker and/or a microphone. Information obtained fromdifferent components of the device is delivered to the centralprocessing unit (CPU), which processes the received information in adesired manner.

The electronic device is preferably provided with an operating systemenabling the separation of the user interface layer from the rest of thedata processing system. An operating system providing this advantageousframework is the Symbian® operating system, which is commonly used inmany portable wireless terminals.

The steps according to the embodiments can be largely implemented withprogram commands executed in the central processing units CPU of theelectronic device ED. Thus, said means for carrying out the methoddescribed above are typically implemented as computer software code. Thecomputer software may be stored into any memory means, such as the harddisk of a PC or a CD-ROM disc, from where it can be loaded into thememory of mobile terminal. The computer software can also be loadedthrough a network, for instance using a TCP/IP protocol stack. It isalso possible to use hardware solutions or a combination of hardware andsoftware solutions for implementing the inventive means.

It is obvious that the present invention is not limited solely to theabove-presented embodiments, but it can be modified within the scope ofthe appended claims.

What is claimed is:
 1. A method comprising: sending a request, to anetwork server, for an application program from a terminal, wherein therequest includes at least a user interface descriptor; and downloading,from the network server, an updated application program correspondingwith the user interface descriptors associated with the terminal.
 2. Themethod according to claim 1, further comprising: after downloading a newuser interface file from the network server, examining whether theupdated application program includes any further user interface files;and selecting at least one further user interface file appropriate forthe terminal for further usage, if included in the updated applicationprogram.
 3. The method according to claim 1, wherein the updatedapplication program includes a network address of the network serverproviding user interface files to be downloaded.
 4. An electronic devicecomprising: a data processing unit; a memory, coupled to said dataprocessing unit, for storage of an operating system and applicationprograms, said operating system enabling a separation of user interfacedata from the rest of data processing operations; an input/outputinterface coupled to said memory and said data processing unit; the dataprocessing unit being configured to send a request, to a network server,for an application program from a terminal, wherein the request includesat least a user interface descriptor; and the input/output interfacebeing configured to download from the network server, in response, therequest of the application program based on at least the user interfacedescriptor as to correspond to the terminal.
 5. The device according toclaim 4, the device being further configured to: examine, whether theapplication program includes any further user interface files; andselect at least one further user interface file appropriate for theterminal for further usage, if included in the application program. 6.The device according to claim 5, wherein the application programincludes a network address of the network server providing userinterface files to be downloaded.
 7. The device according to claim 5,wherein the operating system is the Symbian operating system.
 8. Acomputer program product, stored on a non-transitory computer readablemedium and executable in a data processing device, for updating a userinterface file for an application program, the computer program productcomprising: a computer program code section for sending a request, to anetwork server, for an application program from a terminal, wherein therequest includes at least a user interface descriptor; and a computerprogram code section, to download from the network server, in response,the request of the application program based on at least the userinterface descriptor as to correspond to the terminal.
 9. The computerprogram product according to claim 8, further comprising: a computerprogram code section for examining, after downloading, whether theapplication program includes any further user interface files; and acomputer program code section for selecting a user interface fileappropriate for the terminal for further usage, if included in theapplication program.
 10. The computer program product according to claim8, further comprising: a computer program code section for retrievingfrom the application program a network address of the network serverproviding user interface files to be downloaded.
 11. The computerprogram product according to claim 8, wherein the computer programproduct is compatible with Symbian operating system.